/* 
 * File:   SMP.h
 * Author: Vagner Clementino
 *
 * Created on 11 de Março de 2012, 11:22
 */
#define SOLTEIRO -1
typedef int** matriz_casamento;

/*Cria uma matriz de inteiros de tamanho NxN onde N é o paramêtro tamanho
 *da função.
 */
matriz_casamento cria_matriz(int tamanho);

/*Desaloca o espaco de uma matriz casamento*/
void desaloca_matriz(matriz_casamento m, int tam_matriz);

/*Atribui o valor 0 (zero) para cada celula da matriz_casamento m de tamanho
 * tam_matriz; */
void inicializa_matriz(matriz_casamento m, int tam_matriz);

/*Imprime os valores da matriz_casamento m de tamanho tam_matriz*/
void imprime_matriz(const matriz_casamento m, int tam_matriz);

/*Metodo que verifica se a pessoa com id_pessoa  e sexo (h para homem e m para
 * mulher) esta solteira com base na linha da matriz_casamento chamado 
 * relacionamentos. Se a pessoa estiver solteira o 
 * metodo retorna SOLTEIRO (-1). Caso tenha um compromisso retornara
 * o id do parceiro(a). */
int esta_solteiro(int id_pessoa, char sexo, matriz_casamento m, int tam_matriz);

/*Verifica se ainda tem uma pessoa esta solteira na matriz_casamento m
 * de tamanho tam_matriz. Se estiver solteiro retornara -1, caso contrario
 * retorna o id do parceiro(a)*/
int tem_solteiro(const matriz_casamento m, int tam_matriz);

